﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Unimaq.Macroprocesos.AccesoDatos;

namespace Unimaq.Macroprocesos.LogicaNegocio
{
    public class EmpresaBLL
    {
        public List<AccesoDatos.Empresa> Listar()
        {
            AccesoDatos.EmpresaDAO empresaDAO = new AccesoDatos.EmpresaDAO();
            return empresaDAO.Listar();
        }

        public int Registrar(AccesoDatos.Empresa nuevaEmpresa)
        {
            AccesoDatos.EmpresaDAO empresaDAO = new AccesoDatos.EmpresaDAO();
            return empresaDAO.Registrar(nuevaEmpresa);            
        }

        public int Actualizar(AccesoDatos.Empresa selectedEmpresa, AccesoDatos.Empresa updEmpresa)
        {
            AccesoDatos.EmpresaDAO empresaDAO = new AccesoDatos.EmpresaDAO();
            return empresaDAO.Actualizar(selectedEmpresa, updEmpresa);
        }

        public int Eliminar(AccesoDatos.Empresa selectedEmpresa)
        {
            AccesoDatos.EmpresaDAO empresaDAO = new AccesoDatos.EmpresaDAO();
            return empresaDAO.Eliminar(selectedEmpresa);
        }

        public Empresa GetEmpresa(Proceso selectedProceso)
        {
            List<AccesoDatos.Empresa> lista = Listar();
            AccesoDatos.Empresa result = lista.SingleOrDefault(x => x.Id == selectedProceso.IdEmpresa);

            return result;
        }

        public Empresa GetEmpresa(string nombreEmpresa)
        {
            List<AccesoDatos.Empresa> lista = Listar();
            AccesoDatos.Empresa result = lista.SingleOrDefault(x => x.NombreEmpresa.Equals(nombreEmpresa,StringComparison.CurrentCultureIgnoreCase));

            return result;
        }

        public Empresa GetEmpresa(Empresa selectedEmpresa)
        {
            List<AccesoDatos.Empresa> lista = Listar();
            return lista.SingleOrDefault(x => x.Id.Equals(selectedEmpresa.Id));
        }

        public List<Empresa> Buscar(string nombreEmpresa)
        {
            List<AccesoDatos.Empresa> lista = Listar();
            return lista.Where(x => x.NombreEmpresa.Equals(nombreEmpresa, StringComparison.CurrentCultureIgnoreCase)).ToList();
        }
    }
}
